/*
 * @Author: 严晗 823841034@qq.com
 * @Date: 2023-10-26 17:09:42
 * @LastEditors: 严晗 823841034@qq.com
 * @LastEditTime: 2023-11-08 19:11:27
 * @FilePath: /yike-admin/Users/yanhan/vite-project/src/composables/useDicData.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 下拉列表相关字典项
// 需要匹配字典项的相关方法
// 所有数据都将以 label value 的形式返回
// 部分需要额外处理的参数可以添加 temp 参数进行处理（例如需要处理label、value，可以在temp中传入 label + '-' + value 的形式）

import { onBeforeMount, reactive, toRefs } from 'vue'
import { useStore } from 'vuex'

export function useDicData() {
	const store = useStore()

	// 设置需要赋值的，使用 reactive 和 下面的 toRefs 组合使用，防止响应失效
	let temp = reactive({
		salesData: store.state.dic.salesData || [],
		companyAreaData: store.state.dic.companyAreaData || [],
	})

	// 获取销售数据
	const getSaleData = async () => {
		const data = await store.dispatch('getSalesData')
		temp.salesData = data
	}

	// 获取公司区域数据
	const getCompanyAreaData = async () => {
		const data = await store.dispatch('getCompanyAreaData')
		temp.companyAreaData = data
	}

	// 通过 onBeforeMount 生命周期函数执行相关方法
	onBeforeMount(() => {
		if(temp.salesData.length === 0){
			getSaleData()
		}
		if(temp.companyAreaData.length === 0){
			getCompanyAreaData()
		}
	})

	// 使用 toRefs 解构，防止数据失去响应性
	return toRefs(temp)
}
